/*
 * SPDX-License-Identifier: Apache-2.0
 *
 * Copyright 2015-2024 Andres Almiray
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.kordamp.ikonli.codicons;

import org.kordamp.ikonli.Ikon;

/**
 * @author Andres Almiray
 */
public enum Codicons implements Ikon {
    ACCOUNT("codicon-account", '\uEB99'),
    ACTIVATE_BREAKPOINTS("codicon-activate-breakpoints", '\uEA97'),
    ADD("codicon-add", '\uEA60'),
    ARCHIVE("codicon-archive", '\uEA98'),
    ARROW_BOTH("codicon-arrow-both", '\uEA99'),
    ARROW_DOWN("codicon-arrow-down", '\uEA9A'),
    ARROW_LEFT("codicon-arrow-left", '\uEA9B'),
    ARROW_RIGHT("codicon-arrow-right", '\uEA9C'),
    ARROW_SMALL_DOWN("codicon-arrow-small-down", '\uEA9D'),
    ARROW_SMALL_LEFT("codicon-arrow-small-left", '\uEA9E'),
    ARROW_SMALL_RIGHT("codicon-arrow-small-right", '\uEA9F'),
    ARROW_SMALL_UP("codicon-arrow-small-up", '\uEAA0'),
    ARROW_UP("codicon-arrow-up", '\uEAA1'),
    BEAKER("codicon-beaker", '\uEA79'),
    BELL("codicon-bell", '\uEAA2'),
    BELL_DOT("codicon-bell-dot", '\uEB9A'),
    BOLD("codicon-bold", '\uEAA3'),
    BOOK("codicon-book", '\uEAA4'),
    BOOKMARK("codicon-bookmark", '\uEAA5'),
    BRIEFCASE("codicon-briefcase", '\uEAAC'),
    BROADCAST("codicon-broadcast", '\uEAAD'),
    BROWSER("codicon-browser", '\uEAAE'),
    BUG("codicon-bug", '\uEAAF'),
    CALENDAR("codicon-calendar", '\uEAB0'),
    CALL_INCOMING("codicon-call-incoming", '\uEB92'),
    CALL_OUTGOING("codicon-call-outgoing", '\uEB93'),
    CASE_SENSITIVE("codicon-case-sensitive", '\uEAB1'),
    CHECK("codicon-check", '\uEAB2'),
    CHECKLIST("codicon-checklist", '\uEAB3'),
    CHECK_ALL("codicon-check-all", '\uEBB1'),
    CHEVRON_DOWN("codicon-chevron-down", '\uEAB4'),
    CHEVRON_LEFT("codicon-chevron-left", '\uEAB5'),
    CHEVRON_RIGHT("codicon-chevron-right", '\uEAB6'),
    CHEVRON_UP("codicon-chevron-up", '\uEAB7'),
    CHROME_CLOSE("codicon-chrome-close", '\uEAB8'),
    CHROME_MAXIMIZE("codicon-chrome-maximize", '\uEAB9'),
    CHROME_MINIMIZE("codicon-chrome-minimize", '\uEABA'),
    CHROME_RESTORE("codicon-chrome-restore", '\uEABB'),
    CIRCLE_FILLED("codicon-circle-filled", '\uEA71'),
    CIRCLE_OUTLINE("codicon-circle-outline", '\uEABC'),
    CIRCLE_SLASH("codicon-circle-slash", '\uEABD'),
    CIRCUIT_BOARD("codicon-circuit-board", '\uEABE'),
    CLEAR_ALL("codicon-clear-all", '\uEABF'),
    CLIPPY("codicon-clippy", '\uEAC0'),
    CLOSE("codicon-close", '\uEA76'),
    CLOSE_ALL("codicon-close-all", '\uEAC1'),
    CLOUD("codicon-cloud", '\uEBAA'),
    CLOUD_DOWNLOAD("codicon-cloud-download", '\uEAC2'),
    CLOUD_UPLOAD("codicon-cloud-upload", '\uEAC3'),
    CODE("codicon-code", '\uEAC4'),
    COLLAPSE_ALL("codicon-collapse-all", '\uEAC5'),
    COLOR_MODE("codicon-color-mode", '\uEAC6'),
    COMMENT("codicon-comment", '\uEA6B'),
    COMMENT_DISCUSSION("codicon-comment-discussion", '\uEAC7'),
    CREDIT_CARD("codicon-credit-card", '\uEAC9'),
    DASH("codicon-dash", '\uEACC'),
    DASHBOARD("codicon-dashboard", '\uEACD'),
    DATABASE("codicon-database", '\uEACE'),
    DEBUG("codicon-debug", '\uEAD8'),
    DEBUG_ALT("codicon-debug-alt", '\uEB91'),
    DEBUG_ALT_SMALL("codicon-debug-alt-small", '\uEBA8'),
    DEBUG_BREAKPOINT_CONDITIONAL("codicon-debug-breakpoint-conditional", '\uEAA7'),
    DEBUG_BREAKPOINT_CONDITIONAL_UNVERIFIED("codicon-debug-breakpoint-conditional-unverified", '\uEAA6'),
    DEBUG_BREAKPOINT_DATA("codicon-debug-breakpoint-data", '\uEAA9'),
    DEBUG_BREAKPOINT_DATA_UNVERIFIED("codicon-debug-breakpoint-data-unverified", '\uEAA8'),
    DEBUG_BREAKPOINT_FUNCTION("codicon-debug-breakpoint-function", '\uEB88'),
    DEBUG_BREAKPOINT_FUNCTION_UNVERIFIED("codicon-debug-breakpoint-function-unverified", '\uEB87'),
    DEBUG_BREAKPOINT_LOG("codicon-debug-breakpoint-log", '\uEAAB'),
    DEBUG_BREAKPOINT_LOG_UNVERIFIED("codicon-debug-breakpoint-log-unverified", '\uEAAA'),
    DEBUG_BREAKPOINT_UNSUPPORTED("codicon-debug-breakpoint-unsupported", '\uEB8C'),
    DEBUG_CONSOLE("codicon-debug-console", '\uEB9B'),
    DEBUG_CONTINUE("codicon-debug-continue", '\uEACF'),
    DEBUG_DISCONNECT("codicon-debug-disconnect", '\uEAD0'),
    DEBUG_PAUSE("codicon-debug-pause", '\uEAD1'),
    DEBUG_RESTART("codicon-debug-restart", '\uEAD2'),
    DEBUG_RESTART_FRAME("codicon-debug-restart-frame", '\uEB90'),
    DEBUG_REVERSE_CONTINUE("codicon-debug-reverse-continue", '\uEB8E'),
    DEBUG_STACKFRAME("codicon-debug-stackframe", '\uEB8B'),
    DEBUG_STACKFRAME_ACTIVE("codicon-debug-stackframe-active", '\uEB89'),
    DEBUG_STACKFRAME_DOT("codicon-debug-stackframe-dot", '\uEB8A'),
    DEBUG_START("codicon-debug-start", '\uEAD3'),
    DEBUG_STEP_BACK("codicon-debug-step-back", '\uEB8F'),
    DEBUG_STEP_INTO("codicon-debug-step-into", '\uEAD4'),
    DEBUG_STEP_OUT("codicon-debug-step-out", '\uEAD5'),
    DEBUG_STEP_OVER("codicon-debug-step-over", '\uEAD6'),
    DEBUG_STOP("codicon-debug-stop", '\uEAD7'),
    DESKTOP_DOWNLOAD("codicon-desktop-download", '\uEA78'),
    DEVICE_CAMERA("codicon-device-camera", '\uEADA'),
    DEVICE_CAMERA_VIDEO("codicon-device-camera-video", '\uEAD9'),
    DEVICE_MOBILE("codicon-device-mobile", '\uEADB'),
    DIFF("codicon-diff", '\uEAE1'),
    DIFF_ADDED("codicon-diff-added", '\uEADC'),
    DIFF_IGNORED("codicon-diff-ignored", '\uEADD'),
    DIFF_MODIFIED("codicon-diff-modified", '\uEADE'),
    DIFF_REMOVED("codicon-diff-removed", '\uEADF'),
    DIFF_RENAMED("codicon-diff-renamed", '\uEAE0'),
    DISCARD("codicon-discard", '\uEAE2'),
    EDIT("codicon-edit", '\uEA73'),
    EDITOR_LAYOUT("codicon-editor-layout", '\uEAE3'),
    ELLIPSIS("codicon-ellipsis", '\uEA7C'),
    EMPTY_WINDOW("codicon-empty-window", '\uEAE4'),
    ERROR("codicon-error", '\uEA87'),
    EXCLUDE("codicon-exclude", '\uEAE5'),
    EXPAND_ALL("codicon-expand-all", '\uEB95'),
    EXPORT("codicon-export", '\uEBAC'),
    EXTENSIONS("codicon-extensions", '\uEAE6'),
    EYE("codicon-eye", '\uEA70'),
    EYE_CLOSED("codicon-eye-closed", '\uEAE7'),
    FEEDBACK("codicon-feedback", '\uEB96'),
    FILE("codicon-file", '\uEA7B'),
    FILES("codicon-files", '\uEAF0'),
    FILE_BINARY("codicon-file-binary", '\uEAE8'),
    FILE_CODE("codicon-file-code", '\uEAE9'),
    FILE_MEDIA("codicon-file-media", '\uEAEA'),
    FILE_PDF("codicon-file-pdf", '\uEAEB'),
    FILE_SUBMODULE("codicon-file-submodule", '\uEAEC'),
    FILE_SYMLINK_DIRECTORY("codicon-file-symlink-directory", '\uEAED'),
    FILE_SYMLINK_FILE("codicon-file-symlink-file", '\uEAEE'),
    FILE_ZIP("codicon-file-zip", '\uEAEF'),
    FILTER("codicon-filter", '\uEAF1'),
    FLAME("codicon-flame", '\uEAF2'),
    FOLD("codicon-fold", '\uEAF5'),
    FOLDER("codicon-folder", '\uEA83'),
    FOLDER_ACTIVE("codicon-folder-active", '\uEAF6'),
    FOLDER_OPENED("codicon-folder-opened", '\uEAF7'),
    FOLD_DOWN("codicon-fold-down", '\uEAF3'),
    FOLD_UP("codicon-fold-up", '\uEAF4'),
    GEAR("codicon-gear", '\uEAF8'),
    GIFT("codicon-gift", '\uEAF9'),
    GIST_SECRET("codicon-gist-secret", '\uEAFA'),
    GITHUB("codicon-github", '\uEA84'),
    GITHUB_ACTION("codicon-github-action", '\uEAFF'),
    GITHUB_ALT("codicon-github-alt", '\uEB00'),
    GITHUB_INVERTED("codicon-github-inverted", '\uEBA1'),
    GIT_COMMIT("codicon-git-commit", '\uEAFC'),
    GIT_COMPARE("codicon-git-compare", '\uEAFD'),
    GIT_MERGE("codicon-git-merge", '\uEAFE'),
    GIT_PULL_REQUEST("codicon-git-pull-request", '\uEA64'),
    GLOBE("codicon-globe", '\uEB01'),
    GO_TO_FILE("codicon-go-to-file", '\uEA94'),
    GRABBER("codicon-grabber", '\uEB02'),
    GRAPH("codicon-graph", '\uEB03'),
    GRAPH_LEFT("codicon-graph-left", '\uEBAD'),
    GRIPPER("codicon-gripper", '\uEB04'),
    GROUP_BY_REF_TYPE("codicon-group-by-ref-type", '\uEB97'),
    HEART("codicon-heart", '\uEB05'),
    HISTORY("codicon-history", '\uEA82'),
    HOME("codicon-home", '\uEB06'),
    HORIZONTAL_RULE("codicon-horizontal-rule", '\uEB07'),
    HUBOT("codicon-hubot", '\uEB08'),
    INBOX("codicon-inbox", '\uEB09'),
    INFO("codicon-info", '\uEA74'),
    ISSUES("codicon-issues", '\uEB0C'),
    ISSUE_CLOSED("codicon-issue-closed", '\uEB0A'),
    ISSUE_REOPENED("codicon-issue-reopened", '\uEB0B'),
    ITALIC("codicon-italic", '\uEB0D'),
    JERSEY("codicon-jersey", '\uEB0E'),
    JSON("codicon-json", '\uEB0F'),
    KEBAB_VERTICAL("codicon-kebab-vertical", '\uEB10'),
    KEY("codicon-key", '\uEB11'),
    LAW("codicon-law", '\uEB12'),
    LIBRARY("codicon-library", '\uEB9C'),
    LIGHTBULB("codicon-lightbulb", '\uEA61'),
    LIGHTBULB_AUTOFIX("codicon-lightbulb-autofix", '\uEB13'),
    LINK("codicon-link", '\uEB15'),
    LINK_EXTERNAL("codicon-link-external", '\uEB14'),
    LIST_FILTER("codicon-list-filter", '\uEB83'),
    LIST_FLAT("codicon-list-flat", '\uEB84'),
    LIST_ORDERED("codicon-list-ordered", '\uEB16'),
    LIST_SELECTION("codicon-list-selection", '\uEB85'),
    LIST_TREE("codicon-list-tree", '\uEB86'),
    LIST_UNORDERED("codicon-list-unordered", '\uEB17'),
    LIVE_SHARE("codicon-live-share", '\uEB18'),
    LOADING("codicon-loading", '\uEB19'),
    LOCATION("codicon-location", '\uEB1A'),
    LOCK("codicon-lock", '\uEA75'),
    MAGNET("codicon-magnet", '\uEBAE'),
    MAIL("codicon-mail", '\uEB1C'),
    MAIL_READ("codicon-mail-read", '\uEB1B'),
    MARKDOWN("codicon-markdown", '\uEB1D'),
    MEGAPHONE("codicon-megaphone", '\uEB1E'),
    MENTION("codicon-mention", '\uEB1F'),
    MENU("codicon-menu", '\uEB94'),
    MERGE("codicon-merge", '\uEBAB'),
    MILESTONE("codicon-milestone", '\uEB20'),
    MIRROR("codicon-mirror", '\uEA69'),
    MORTAR_BOARD("codicon-mortar-board", '\uEB21'),
    MOVE("codicon-move", '\uEB22'),
    MULTIPLE_WINDOWS("codicon-multiple-windows", '\uEB23'),
    MUTE("codicon-mute", '\uEB24'),
    NEW_FILE("codicon-new-file", '\uEA7F'),
    NEW_FOLDER("codicon-new-folder", '\uEA80'),
    NOTE("codicon-note", '\uEB26'),
    NOTEBOOK("codicon-notebook", '\uEBAF'),
    NO_NEWLINE("codicon-no-newline", '\uEB25'),
    OCTOFACE("codicon-octoface", '\uEB27'),
    OPEN_PREVIEW("codicon-open-preview", '\uEB28'),
    ORGANIZATION("codicon-organization", '\uEA7E'),
    OUTPUT("codicon-output", '\uEB9D'),
    PACKAGE("codicon-package", '\uEB29'),
    PAINTCAN("codicon-paintcan", '\uEB2A'),
    PASS("codicon-pass", '\uEBA4'),
    PERSON("codicon-person", '\uEA67'),
    PIN("codicon-pin", '\uEB2B'),
    PINNED("codicon-pinned", '\uEBA0'),
    PLAY("codicon-play", '\uEB2C'),
    PLAY_CIRCLE("codicon-play-circle", '\uEBA6'),
    PLUG("codicon-plug", '\uEB2D'),
    PRESERVE_CASE("codicon-preserve-case", '\uEB2E'),
    PREVIEW("codicon-preview", '\uEB2F'),
    PRIMITIVE_SQUARE("codicon-primitive-square", '\uEA72'),
    PROJECT("codicon-project", '\uEB30'),
    PULSE("codicon-pulse", '\uEB31'),
    QUESTION("codicon-question", '\uEB32'),
    QUOTE("codicon-quote", '\uEB33'),
    RADIO_TOWER("codicon-radio-tower", '\uEB34'),
    REACTIONS("codicon-reactions", '\uEB35'),
    RECORD("codicon-record", '\uEBA7'),
    RECORD_KEYS("codicon-record-keys", '\uEA65'),
    REDO("codicon-redo", '\uEBB0'),
    REFERENCES("codicon-references", '\uEB36'),
    REFRESH("codicon-refresh", '\uEB37'),
    REGEX("codicon-regex", '\uEB38'),
    REMOTE("codicon-remote", '\uEB3A'),
    REMOTE_EXPLORER("codicon-remote-explorer", '\uEB39'),
    REMOVE("codicon-remove", '\uEB3B'),
    REPLACE("codicon-replace", '\uEB3D'),
    REPLACE_ALL("codicon-replace-all", '\uEB3C'),
    REPLY("codicon-reply", '\uEA7D'),
    REPO("codicon-repo", '\uEA62'),
    REPORT("codicon-report", '\uEB42'),
    REPO_CLONE("codicon-repo-clone", '\uEB3E'),
    REPO_FORCE_PUSH("codicon-repo-force-push", '\uEB3F'),
    REPO_FORKED("codicon-repo-forked", '\uEA63'),
    REPO_PULL("codicon-repo-pull", '\uEB40'),
    REPO_PUSH("codicon-repo-push", '\uEB41'),
    REQUEST_CHANGES("codicon-request-changes", '\uEB43'),
    ROCKET("codicon-rocket", '\uEB44'),
    ROOT_FOLDER("codicon-root-folder", '\uEB46'),
    ROOT_FOLDER_OPENED("codicon-root-folder-opened", '\uEB45'),
    RSS("codicon-rss", '\uEB47'),
    RUBY("codicon-ruby", '\uEB48'),
    RUN_ALL("codicon-run-all", '\uEB9E'),
    SAVE("codicon-save", '\uEB4B'),
    SAVE_ALL("codicon-save-all", '\uEB49'),
    SAVE_AS("codicon-save-as", '\uEB4A'),
    SCREEN_FULL("codicon-screen-full", '\uEB4C'),
    SCREEN_NORMAL("codicon-screen-normal", '\uEB4D'),
    SEARCH("codicon-search", '\uEA6D'),
    SEARCH_STOP("codicon-search-stop", '\uEB4E'),
    SERVER("codicon-server", '\uEB50'),
    SERVER_ENVIRONMENT("codicon-server-environment", '\uEBA3'),
    SERVER_PROCESS("codicon-server-process", '\uEBA2'),
    SETTINGS("codicon-settings", '\uEB52'),
    SETTINGS_GEAR("codicon-settings-gear", '\uEB51'),
    SHIELD("codicon-shield", '\uEB53'),
    SIGN_IN("codicon-sign-in", '\uEA6F'),
    SIGN_OUT("codicon-sign-out", '\uEA6E'),
    SMILEY("codicon-smiley", '\uEB54'),
    SORT_PRECEDENCE("codicon-sort-precedence", '\uEB55'),
    SOURCE_CONTROL("codicon-source-control", '\uEA68'),
    SPLIT_HORIZONTAL("codicon-split-horizontal", '\uEB56'),
    SPLIT_VERTICAL("codicon-split-vertical", '\uEB57'),
    SQUIRREL("codicon-squirrel", '\uEB58'),
    STAR_EMPTY("codicon-star-empty", '\uEA6A'),
    STAR_FULL("codicon-star-full", '\uEB59'),
    STAR_HALF("codicon-star-half", '\uEB5A'),
    STOP_CIRCLE("codicon-stop-circle", '\uEBA5'),
    SYMBOL_ARRAY("codicon-symbol-array", '\uEA8A'),
    SYMBOL_BOOLEAN("codicon-symbol-boolean", '\uEA8F'),
    SYMBOL_CLASS("codicon-symbol-class", '\uEB5B'),
    SYMBOL_COLOR("codicon-symbol-color", '\uEB5C'),
    SYMBOL_CONSTANT("codicon-symbol-constant", '\uEB5D'),
    SYMBOL_ENUM("codicon-symbol-enum", '\uEA95'),
    SYMBOL_ENUM_MEMBER("codicon-symbol-enum-member", '\uEB5E'),
    SYMBOL_EVENT("codicon-symbol-event", '\uEA86'),
    SYMBOL_FIELD("codicon-symbol-field", '\uEB5F'),
    SYMBOL_FILE("codicon-symbol-file", '\uEB60'),
    SYMBOL_INTERFACE("codicon-symbol-interface", '\uEB61'),
    SYMBOL_KEY("codicon-symbol-key", '\uEA93'),
    SYMBOL_KEYWORD("codicon-symbol-keyword", '\uEB62'),
    SYMBOL_METHOD("codicon-symbol-method", '\uEA8C'),
    SYMBOL_MISC("codicon-symbol-misc", '\uEB63'),
    SYMBOL_NAMESPACE("codicon-symbol-namespace", '\uEA8B'),
    SYMBOL_NUMERIC("codicon-symbol-numeric", '\uEA90'),
    SYMBOL_OPERATOR("codicon-symbol-operator", '\uEB64'),
    SYMBOL_PARAMETER("codicon-symbol-parameter", '\uEA92'),
    SYMBOL_PROPERTY("codicon-symbol-property", '\uEB65'),
    SYMBOL_RULER("codicon-symbol-ruler", '\uEA96'),
    SYMBOL_SNIPPET("codicon-symbol-snippet", '\uEB66'),
    SYMBOL_STRING("codicon-symbol-string", '\uEB8D'),
    SYMBOL_STRUCTURE("codicon-symbol-structure", '\uEA91'),
    SYMBOL_VARIABLE("codicon-symbol-variable", '\uEA88'),
    SYNC("codicon-sync", '\uEA77'),
    SYNC_IGNORED("codicon-sync-ignored", '\uEB9F'),
    TAG("codicon-tag", '\uEA66'),
    TASKLIST("codicon-tasklist", '\uEB67'),
    TELESCOPE("codicon-telescope", '\uEB68'),
    TERMINAL("codicon-terminal", '\uEA85'),
    TEXT_SIZE("codicon-text-size", '\uEB69'),
    THREE_BARS("codicon-three-bars", '\uEB6A'),
    THUMBSDOWN("codicon-thumbsdown", '\uEB6B'),
    THUMBSUP("codicon-thumbsup", '\uEB6C'),
    TOOLS("codicon-tools", '\uEB6D'),
    TRASH("codicon-trash", '\uEA81'),
    TRIANGLE_DOWN("codicon-triangle-down", '\uEB6E'),
    TRIANGLE_LEFT("codicon-triangle-left", '\uEB6F'),
    TRIANGLE_RIGHT("codicon-triangle-right", '\uEB70'),
    TRIANGLE_UP("codicon-triangle-up", '\uEB71'),
    TWITTER("codicon-twitter", '\uEB72'),
    UNFOLD("codicon-unfold", '\uEB73'),
    UNGROUP_BY_REF_TYPE("codicon-ungroup-by-ref-type", '\uEB98'),
    UNLOCK("codicon-unlock", '\uEB74'),
    UNMUTE("codicon-unmute", '\uEB75'),
    UNVERIFIED("codicon-unverified", '\uEB76'),
    VERIFIED("codicon-verified", '\uEB77'),
    VERSIONS("codicon-versions", '\uEB78'),
    VM("codicon-vm", '\uEA7A'),
    VM_ACTIVE("codicon-vm-active", '\uEB79'),
    VM_CONNECT("codicon-vm-connect", '\uEBA9'),
    VM_OUTLINE("codicon-vm-outline", '\uEB7A'),
    VM_RUNNING("codicon-vm-running", '\uEB7B'),
    WARNING("codicon-warning", '\uEA6C'),
    WATCH("codicon-watch", '\uEB7C'),
    WHITESPACE("codicon-whitespace", '\uEB7D'),
    WHOLE_WORD("codicon-whole-word", '\uEB7E'),
    WINDOW("codicon-window", '\uEB7F'),
    WORD_WRAP("codicon-word-wrap", '\uEB80'),
    ZOOM_IN("codicon-zoom-in", '\uEB81'),
    ZOOM_OUT("codicon-zoom-out", '\uEB82');

    public static Codicons findByDescription(String description) {
        for (Codicons font : values()) {
            if (font.getDescription().equals(description)) {
                return font;
            }
        }
        throw new IllegalArgumentException("Icon description '" + description + "' is invalid!");
    }

    private String description;
    private int code;

    Codicons(String description, int code) {
        this.description = description;
        this.code = code;
    }

    @Override
    public String getDescription() {
        return description;
    }

    @Override
    public int getCode() {
        return code;
    }
}